home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / CHIP Kasım 1996.iso / ms / catapult / catapult.exe / BETA2SP / PPC / UPDATE.INF < prev    next >
INI File  |  1996-06-21  |  33KB  |  816 lines

  1. [FileKeyedClasses]
  2.     Hal            = hal.dll
  3.     Ntoskrnl       = ntoskrnl.exe
  4. [FilesKeyedSections]
  5.     FilesHal       = $(STF_HALDEST)
  6.     FilesNtoskrnl  = $(STF_WINDOWSSYSPATH)
  7. [FilesHal]
  8.  
  9. [FilesNtoskrnl]
  10.  
  11. [FileSections]
  12.     FilesPrimary        = C:
  13.     FilesOsLoader       = $(STF_OSLDEST)
  14.     FilesPal            = $(STF_HALDEST)
  15.     FilesWinnt          = $(STF_WINDOWSPATH)
  16.     FilesSystem32       = $(STF_WINDOWSSYSPATH)
  17.     FilesSystem         = $(STF_WINDOWSPATH)\system
  18.     FilesDrivers        = $(STF_WINDOWSSYSPATH)\drivers
  19.     FilesConfig         = $(STF_WINDOWSSYSPATH)\config
  20.     FilesWinspool       = $(STF_WINDOWSSYSPATH)\spool
  21.     FilesPrnDriver      = $(STF_WINDOWSSYSPATH)\spool\drivers\$(!STF_PRNPLATFORM)\1
  22.     FilesPrnProc        = $(STF_WINDOWSSYSPATH)\spool\prtprocs\$(!STF_PRNPLATFORM)
  23.     FilesDbgCom         = $(STF_WINDOWSPATH)\symbols\com
  24.     FilesDbgCpl         = $(STF_WINDOWSPATH)\symbols\cpl
  25.     FilesDbgDll         = $(STF_WINDOWSPATH)\symbols\dll
  26.     FilesDbgDrv         = $(STF_WINDOWSPATH)\symbols\drv
  27.     FilesDbgExe         = $(STF_WINDOWSPATH)\symbols\exe
  28.     FilesDbgScr         = $(STF_WINDOWSPATH)\symbols\scr
  29.     FilesDbgSys         = $(STF_WINDOWSPATH)\symbols\sys
  30.     FilesFpNwLogin      = $(STF_FPNWSYSPATH)\login
  31.     FilesFpNwPublic     = $(STF_FPNWSYSPATH)\public
  32. [FileSectionsIIS]
  33.     FilesIIS            = $(STF_IISPATH)
  34. [FileSectionsCopyAlways]
  35.     FilesSystem32CopyAlways = $(STF_WINDOWSSYSPATH)
  36.     FilesDriversCopyAlways  = $(STF_WINDOWSSYSPATH)\drivers
  37. [FileSectionsWINNT]
  38.     FilesInfWinnt       = $(STF_WINDOWSSYSPATH)
  39. [FileSectionsLANMANNT]
  40.     FilesInfLanmanNT    = $(STF_WINDOWSSYSPATH)
  41. [FileSectionsCopyAlwaysWINNT]
  42.     FilesSystem32CopyAlwaysWinnt = $(STF_WINDOWSSYSPATH)
  43. [FileSectionsCopyAlwaysLANMANNT]
  44.     FilesSystem32CopyAlwaysLanmanNT = $(STF_WINDOWSSYSPATH)
  45. [FilesPrimary]
  46. [FilesOsLoader]
  47. [FilesPal]
  48. [FilesWinnt]
  49.  
  50. [FilesSystem32]
  51. 1 = 1, LOCALSPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  52. 2 = 1, WSOCK32.DLL,  RENAME=$(NEWFILE), NOLOG, UNDO
  53. 3 = 1, MSAFD.DLL,    RENAME=$(NEWFILE), NOLOG, UNDO
  54. 4 = 1, WS2_32.DLL,   RENAME=$(NEWFILE), NOLOG, UNDO
  55.  
  56. [FilesSystem]
  57.  
  58. [FilesDrivers]
  59. 1 = 1, AFD.SYS,      RENAME=$(NEWFILE), NOLOG, UNDO
  60. 2 = 1, IEEPRO.SYS,   RENAME=$(NEWFILE), NOLOG, UNDO
  61. 3 = 1, NWLNKSPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  62.  
  63. [FilesConfig]
  64. [FilesWinspool]
  65. [FilesPrnDriver]
  66. [FilesPrnProc]
  67. [FilesDbgCom]
  68. [FilesDbgCpl]
  69. [FilesDbgDll]
  70. [FilesDbgDrv]
  71. [FilesDbgExe]
  72. [FilesDbgScr]
  73. [FilesDbgSys]
  74. [FilesInfWinnt]
  75. [FilesInfLanmanNT]
  76. [FilesSystem32CopyAlways]
  77. [FilesDriversCopyAlways]
  78. [FilesSystem32CopyAlwaysWINNT]
  79. [FilesSystem32CopyAlwaysLANMANNT]
  80. [FilesFpNwLogin]
  81. [FilesFpNwPublic]
  82. [FilesIIS]
  83. 1 = 1, W3SVC.DLL,      RENAME=$(NEWFILE), NOLOG, UNDO
  84.  
  85. [FileAttributes]
  86. [ProcessorID]
  87.     ProcessorID_I386  = I386
  88.     ProcessorID_I486  = I486
  89.     ProcessorID_I586  = I586
  90.     ProcessorID_R4000 = R4000
  91. [UiVars]
  92.     STF_PLATFORMDET    = "" ? $(!LIBHANDLE) GetPlatform
  93.     STF_CSDVER           = 1
  94.     STF_BUILDVER       = 1314
  95.     STF_CSD1_NT35      = 256
  96.     STF_NT31_BUILDVER  = 528
  97.     STF_NT35_BUILDVER  = 807
  98.     STF_NT351_BUILDVER = 1057
  99.     STF_NT400_BUILDVER = 1314
  100.     STF_NT351_MAJORVER = 3
  101.     STF_NT351_MINORVER = 51
  102.     STF_NT400_MAJORVER = 4
  103.     STF_NT400_MINORVER = 00
  104.     STF_PRIMARY        = "C:"
  105.     STF_NTDRIVE        = ""
  106.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  107.     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  108.     STF_CONTROLSET     = CurrentControlSet
  109.     VolumeList         = {} ? $(!LIBHANDLE) GetHardDriveLetters
  110.     VolumeFSList       = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
  111.     VolumeFreeList     = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace
  112.     DisketteList       = {} ? $(!LIBHANDLE) GetFloppyDriveLetters
  113. [FreeSpaceI386]
  114.     RequiredFreeWinnt  = 5
  115. [FreeSpaceMips]
  116.     RequiredFreeWinnt  = 5
  117. [FreeSpaceppc]
  118.     RequiredFreeWinnt  = 5
  119. [FreeSpaceAlpha]
  120.     RequiredFreeWinnt  = 5
  121. [NVRAMVars]
  122.     SystemPartition = "" ? $(!LIBHANDLE) GetNVRAMVar SYSTEMPARTITION
  123.     OsLoader        = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADER
  124.     OsLoadPartition = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADPARTITION
  125.     OsLoadFilename  = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADFILENAME
  126. [Shell Commands]
  127.     set-title "Windows NT Setup"
  128.     set-subst CR = "\r"
  129.     set-subst LF = "\n"
  130.     set STF_LANGUAGE = ENG
  131.     set STF_LANGUAGE_TYPE = 9
  132.     read-syms Strings
  133.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard1)
  134.     set BillboardPushed = TRUE
  135.     set IISPathFound = FALSE
  136.     set !LIBHANDLE      = ""
  137.     set !PATCHLIBHANDLE = ""
  138.     install   LoadSetupLibrary
  139.     read-syms ProductType
  140.     ifstr(i) $(!STF_PLATFORM) == I386
  141.         set STF_PRNPLATFORM = "w32x86"
  142.     else-ifstr(i) $(!STF_PLATFORM) == Mips
  143.         set STF_PRNPLATFORM = "w32mips"
  144.     else-ifstr(i) $(!STF_PLATFORM) == ppc
  145.         set STF_PRNPLATFORM = "w32ppc"
  146.     else-ifstr(i) $(!STF_PLATFORM) == Alpha
  147.         set STF_PRNPLATFORM = "w32alpha"
  148.     endif
  149.     read-syms UiVars
  150.     detect    UiVars
  151.     install   LoadPatchLibrary
  152.     read-syms FreeSpace$(!STF_PLATFORM)
  153.     ifstr(i) $(STF_PLATFORM) != $(STF_PLATFORMDET)
  154.          ifstr(i) $(BillboardPushed) == TRUE
  155.              shell "subroutn.inf" PopBillboard
  156.              set BillboardPushed = FALSE
  157.          endif
  158.          shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String1)
  159.          goto patchnotdone
  160.     endif
  161.     shell "registry.inf" CheckSetupModify
  162.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  163.         ifstr(i) $(BillboardPushed) == TRUE
  164.             shell "subroutn.inf" PopBillboard
  165.             set BillboardPushed = FALSE
  166.         endif
  167.         Debug-Output "shelling CheckSetupModify failed"
  168.         goto patchnotdone
  169.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  170.         ifstr(i) $(BillboardPushed) == TRUE
  171.             shell "subroutn.inf" PopBillboard
  172.             set BillboardPushed = FALSE
  173.         endif
  174.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  175.         goto patchnotdone
  176.     endif
  177.     shell "" GetCheckedFree
  178.     ifint $($ShellCode) == $(!SHELL_CODE_OK)
  179.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  180.             ifstr(i) $($R1) == "checked"
  181.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String15)
  182.                 goto patchnotdone
  183.             endif
  184.         endif
  185.     endif
  186.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMajorVersion
  187.     ifint $(STATUS) > $(STF_NT400_MAJORVER)
  188.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  189.         goto patchnotdone
  190.     else-ifint $(STATUS) = $(STF_NT400_MAJORVER)
  191.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMinorVersion
  192.     ifint $(STATUS) > $(STF_NT400_MINORVER)
  193.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  194.             goto patchnotdone
  195.         endif
  196.     endif
  197.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckBuildVersion
  198.     ifint $(STATUS) <= $(STF_NT35_BUILDVER)
  199.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String16)
  200.         goto patchnotdone
  201.     else-ifint $(STATUS) < $(STF_NT400_BUILDVER)
  202.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String17)
  203.         goto patchnotdone
  204.     else-ifint $(STATUS) > $(STF_NT400_BUILDVER)
  205.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  206.         goto patchnotdone
  207.     endif
  208.     ifstr(i) $(!STF_PLATFORM) == ppc
  209.         OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" 33554432 KeyCurrentVersion
  210.         ifstr(i) $(KeyCurrentVersion) != ""
  211.             GetRegValue $(KeyCurrentVersion) "CSDVersion" CSDVersionList
  212.             ifstr(i) $(CSDVersionList) == "Power Managed Version X"
  213.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  214.                 goto patchnotdone
  215.             endif
  216.             GetRegValue $(KeyCurrentVersion) "PowerManagedVersion" PMVersionList
  217.             ifstr(i) $(PMVersionList) != ""
  218.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  219.                 goto patchnotdone
  220.             endif
  221.         endif
  222.     endif
  223.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetLanguageType
  224.     ifstr(i) $(STATUS) == ERROR
  225.         goto patchnotdone
  226.     else
  227.         ifstr(i) $(STATUS) != $(STF_LANGUAGE_TYPE)
  228.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String20)
  229.             goto patchnotdone
  230.         endif
  231.     endif
  232.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), FixFPNWFiles
  233.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetFPNWPathName
  234.     ifstr(i) $(STATUS) != "FAILURE"
  235.         set STF_FPNWSYSPATH = $(STATUS)
  236.     endif
  237. skip_patchvercheck = +
  238.     GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
  239.     ifint *($(VolumeFreeList), ~($(VolumeList), $(!STF_NTDRIVE))) < $(RequiredFreeWinnt)
  240.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String13a)$(RequiredFreeWinnt)$(String13b)$(!STF_NTDRIVE)$(String13c)
  241.         goto patchnotdone
  242.     endif
  243.     set STF_PRODUCT = ""
  244.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
  245.     ifstr(i) $(KeyProductOption) != ""
  246.      GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
  247.      set TempProductType = *($(ProductTypeList),4)
  248.      ifstr(i) $(TempProductType) == "winnt"
  249.          set !STF_PRODUCT = WINNT
  250.          set !PRODUCT_DIR = WINNT
  251.      else-ifstr(i) $(TempProductType) == "lanmannt"
  252.          set !STF_PRODUCT = LANMANNT
  253.          set !PRODUCT_DIR = NTAS
  254.      else-ifstr(i) $(TempProductType) == "servernt"
  255.          set !STF_PRODUCT = SERVERNT
  256.          set !PRODUCT_DIR = NTAS
  257.      endif
  258.      CloseRegKey $(KeyProductOptions)
  259.     endif
  260.     ifstr(i) $(STF_PRODUCT) == ""
  261.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String14)
  262.         goto patchnotdone
  263.     endif
  264.     ifstr(i) $(!STF_PLATFORM) == I386
  265.         set STF_HALDEST = $(!STF_WINDOWSSYSPATH)
  266.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetOsLoaderDest
  267.         ifstr(i) $(STATUS) == ERROR
  268.             goto patchnotdone
  269.         else
  270.             set STF_OSLDEST = $(STATUS)
  271.         endif
  272.     else
  273.         read-syms NVRAMVars
  274.         detect    NVRAMVars
  275.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetOsLoaderDest         +
  276.                                                          $(SystemPartition) +
  277.                                                          $(OsLoader)        +
  278.                                                          $(OsLoadPartition) +
  279.                                                          $(OsLoadFilename)
  280.         ifstr(i) $(STATUS) == ERROR
  281.             goto patchnotdone
  282.         else
  283.             set STF_OSLDEST = $(STATUS)
  284.             set STF_HALDEST = $(STATUS)
  285.         endif
  286.     endif
  287.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\W3svc\Parameters" 33554432 KeySvc
  288.     ifstr(i) $(KeySvc) != ""
  289.         GetRegValue $(KeySvc) "InstallPath" DestPathValue
  290.         set !STF_IISPATH = *($(DestPathValue), 4)
  291.         ifstr(i) $(STF_IISPATH) != ""
  292.             set IISPathFound = TRUE
  293.         endif
  294.     endif
  295.     CloseRegKey $(KeySvc)
  296.     read-syms FilesKeyedSections
  297.     set KeyedClassKeys  = ^(FileKeyedClasses, 0)
  298.     set KeyedClassFiles = ^(FileKeyedClasses, 1)
  299.     set KeyedClassFilesList = {}
  300.     ForListDo $(KeyedClassKeys)
  301.         set TmpKey       = Files$($)
  302.         set TmpFile      = #(FileKeyedClasses, $($), 1)
  303.         set TmpFilePath  = $($(TmpKey))\$(TmpFile)
  304.         set KeyedClassFilesList = >($(KeyedClassFilesList), $(TmpFilePath))
  305.     EndForListDo
  306.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetFileTypes $(KeyedClassFilesList)
  307.     ifstr(i) $(STATUS) == ERROR
  308.         goto patchnotdone
  309.     else-ifstr(i) $(STATUS) == SETUPLOGNOTPRESENT
  310.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String11)
  311.         goto patchnotdone
  312.     else
  313.         ForListDo $(KeyedClassKeys)
  314.             set $($)Type = *($(STATUS), $(#))
  315.         EndForListDo
  316.     endif
  317.     ifstr(i) $(BillboardPushed) == TRUE
  318.         shell "subroutn.inf" PopBillboard
  319.         set BillboardPushed = FALSE
  320.     endif
  321.     ifstr(i) $(Unattended) != TRUE
  322.         shell "" QueryOkCancel $(String9)
  323.         ifstr(i) $($R1) == "OK"
  324.         else
  325.             set String = $(String12)
  326.             goto finish2
  327.         endif
  328.     endif
  329.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard2)
  330.     set BillboardPushed = TRUE
  331.     set MoveFileExList  = {}
  332.     read-syms FileSections
  333.     set FileSectionsList = ^(FileSections, 0)
  334.     set FileSource  = $(!STF_SRCDIR)
  335.     ForListDo $(FileSectionsList)
  336.         set FileSection = $($)
  337.         set FileDest    = $($($))
  338.         set FileList    = ^($(FileSection), 0)
  339.         ForListDo $(FileList)
  340.             set FileKey          = $($)
  341.             set File             = #($(FileSection), $(FileKey), 2)
  342.             set FileDestFullPath = $(FileDest)\$(File)
  343.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  344.             ifstr(i) $(STATUS) == YES
  345.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  346.                 ifstr(i) $(STATUS) == ERROR
  347.                     goto patchnotdone
  348.                 else
  349.                     ifstr(i) $(STATUS) == "YES"
  350.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  351.                         ifstr(i) $(NEWFILE) == ERROR
  352.                             goto patchnotdone
  353.                         else
  354.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  355.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  356.                         endif
  357.                     else
  358.                         set NEWFILE = $(File)
  359.                     endif
  360.                     install Install-File
  361.                 endif
  362.             endif
  363.         EndForListDo
  364.     EndForListDO
  365.     set FileSource  = $(!STF_SRCDIR)
  366.     ForListDo $(KeyedClassKeys)
  367.         set FileSection = Files$($)
  368.         set FileDest    = $($(FileSection))
  369.         set FileKey     = $($($)Type)
  370.         set KeyedClassChoices = ^(Files$($), 0)
  371.         ifcontains(i) $(FileKey) in $(KeyedClassChoices)
  372.             set File             = #(FileKeyedClasses, $($), 1)
  373.             set FileDestFullPath = $(FileDest)\$(File)
  374.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  375.             ifstr(i) $(STATUS) == YES
  376.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  377.                 ifstr(i) $(STATUS) == ERROR
  378.                     goto patchnotdone
  379.                 else
  380.                     ifstr(i) $(STATUS) == "YES"
  381.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  382.                         ifstr(i) $(NEWFILE) == ERROR
  383.                             goto patchnotdone
  384.                         else
  385.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  386.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  387.                         endif
  388.                     else
  389.                         set NEWFILE = $(File)
  390.                     endif
  391.                     install Install-File
  392.                 endif
  393.             endif
  394.         endif
  395.     EndForListDo
  396.     ifstr(i) $(STF_PRODUCT) == "WINNT"
  397.         set TEMP_PRODUCT = WINNT
  398.     else
  399.         set TEMP_PRODUCT = LANMANNT
  400.     endif
  401.     read-syms FileSections$(TEMP_PRODUCT)
  402.     set FileSectionsList = ^(FileSections$(TEMP_PRODUCT), 0)
  403.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  404.     ForListDo $(FileSectionsList)
  405.         set FileSection = $($)
  406.         set FileDest    = $($($))
  407.         set FileList    = ^($(FileSection), 0)
  408.         ForListDo $(FileList)
  409.             set FileKey      = $($)
  410.             set File         = #($(FileSection), $(FileKey), 2)
  411.             set FileDestFullPath = $(FileDest)\$(File)
  412.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  413.             ifstr(i) $(STATUS) == YES
  414.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  415.                 ifstr(i) $(STATUS) == ERROR
  416.                     goto patchnotdone
  417.                 else
  418.                     ifstr(i) $(STATUS) == "YES"
  419.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  420.                         ifstr(i) $(NEWFILE) == ERROR
  421.                             goto patchnotdone
  422.                         else
  423.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  424.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  425.                         endif
  426.                     else
  427.                         set NEWFILE = $(File)
  428.                     endif
  429.                     install Install-File
  430.                 endif
  431.             endif
  432.         EndForListDo
  433.     EndForListDO
  434.     ifstr(i) $(BillboardPushed) == TRUE
  435.         shell "subroutn.inf" PopBillboard
  436.         set BillboardPushed = FALSE
  437.     endif
  438.     read-syms FileSectionsCopyAlways
  439.     set FileSectionsList = ^(FileSectionsCopyAlways, 0)
  440.     set FileSource  = $(!STF_SRCDIR)
  441.     ForListDo $(FileSectionsList)
  442.         set FileSection = $($)
  443.         set FileDest    = $($($))
  444.         set FileList    = ^($(FileSection), 0)
  445.         ForListDo $(FileList)
  446.             set FileKey = $($)
  447.             set File    = #($(FileSection), $(FileKey), 2)
  448.             set NEWFILE = $(File)
  449.             set FileDestFullPath = $(FileDest)\$(File)
  450.             install Install-File
  451.         EndForListDo
  452.     EndForListDO
  453.     read-syms FileSectionsCopyAlways$(TEMP_PRODUCT)
  454.     set FileSectionsList = ^(FileSectionsCopyAlways$(TEMP_PRODUCT), 0)
  455.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  456.     ForListDo $(FileSectionsList)
  457.         set FileSection = $($)
  458.         set FileDest    = $($($))
  459.         set FileList    = ^($(FileSection), 0)
  460.         ForListDo $(FileList)
  461.             set FileKey = $($)
  462.             set File    = #($(FileSection), $(FileKey), 2)
  463.             set NEWFILE = $(File)
  464.             set FileDestFullPath = $(FileDest)\$(File)
  465.             install Install-File
  466.         EndForListDo
  467.     EndForListDO
  468.     ifstr(i) $(IISPathFound) == TRUE
  469.         read-syms FileSectionsIIS
  470.         set FileSectionsList = ^(FileSectionsIIS, 0)
  471.         set FileSource  = $(!STF_SRCDIR)
  472.         ForListDo $(FileSectionsList)
  473.             set FileSection = $($)
  474.             set FileDest    = $($($))
  475.             set FileList    = ^($(FileSection), 0)
  476.             ForListDo $(FileList)
  477.                 set FileKey      = $($)
  478.                 set File         = #($(FileSection), $(FileKey), 2)
  479.                 set FileDestFullPath = $(FileDest)\$(File)
  480.                 LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  481.                 ifstr(i) $(STATUS) == YES
  482.                     LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  483.                     ifstr(i) $(STATUS) == ERROR
  484.                         goto patchnotdone
  485.                     else
  486.                         ifstr(i) $(STATUS) == "YES"
  487.                             LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  488.                             ifstr(i) $(NEWFILE) == ERROR
  489.                                 goto patchnotdone
  490.                             else
  491.                                 set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  492.                                 set MoveFileExList = >($(MoveFileExList), $(FileComp))
  493.                             endif
  494.                         else
  495.                             set NEWFILE = $(File)
  496.                         endif
  497.                         install Install-File
  498.                     endif
  499.                 endif
  500.             EndForListDo
  501.         EndForListDO
  502.     endif
  503.     read-syms ProgressCopy$(!STF_LANGUAGE)
  504.     install   Install-DoCopy
  505.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  506.         goto patchnotdone
  507.     else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  508.         goto patchnotdone
  509.     endif
  510.     set FileSection = "FileAttributes"
  511.     set FileList    = ^(FileSection, 0)
  512.     ForListDo $(FileList)
  513.         set FileKey          = $($)
  514.         set File             = #($(FileSection), $(FileKey), 2)
  515.         set FileDest         = #($(FileSection), $(FileKey), 3)
  516.         set FilePerms        = #($(FileSection), $(FileKey), 4)
  517.         set FileDestFullPath = $(FileDest)\$(File)
  518.         ifstr(i) $(FilePerms) != ""
  519.             LibraryProcedure STATUS,$(!PATCHLIBHANDLE),ChangeFileAttributes $(FilePerms) $(FileDestFullPath)
  520.         endif
  521.     EndForListDo
  522. processmovefileex=+
  523.     ForListDo $(MoveFileExList)
  524.         set ExistingPath = *($($), 1)
  525.         set NewPath      = *($($), 2)
  526.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), CopyFileOnReboot $(ExistingPath) $(NewPath)
  527.         ifstr(i) $(STATUS) == ERROR
  528.             goto patchnotdone
  529.         endif
  530.     EndForListDo
  531.     ifstr(i) $(!STF_PLATFORM) == I386
  532.         set NtLdrPath = $(STF_OSLDEST)"ntldr"
  533.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), ForceFileNoCompress $(NtLdrPath)
  534.         ifstr(i) $(STATUS) == ERROR
  535.             goto patchnotdone
  536.         endif
  537.     endif
  538. patchdone =+
  539.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), RestoreSetupLog
  540.     ifstr(i) $(BillboardPushed) == TRUE
  541.         shell "subroutn.inf" PopBillboard
  542.         set BillboardPushed = FALSE
  543.     endif
  544.     shell "" DoRegistryModifications $(!STF_CSDVER)
  545.     ifstr(i) $(Unattended) != TRUE
  546.         read-syms SetupDoneDlg$(!STF_LANGUAGE)
  547.         ui start "SetupDone"
  548.         ifstr(i) $(DLGEVENT) == "CONTINUE"
  549.             ui pop 1
  550.             goto rebootend
  551.         else
  552.             ui pop 1
  553.             goto finish1
  554.         endif
  555.     else
  556.         goto rebootend
  557.     endif
  558. patchnotdone =+
  559.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), RestoreSetupLog
  560.     set String = $(String2)
  561. finish2 =+
  562.     ifstr(i) $(BillboardPushed) == TRUE
  563.         shell "subroutn.inf" PopBillboard
  564.         set BillboardPushed = FALSE
  565.     endif
  566.     shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String)
  567.     goto finish1
  568. finish1 =+
  569.     install   FreeSetupLibrary
  570. finish =+
  571.     install   FreePatchLibrary
  572.     exit
  573. rebootend =+
  574.     set Reboot = YES
  575.     ifstr(i) $(Unattended) != TRUE
  576.     install    Install-Shutdown
  577.     else
  578.     ifstr(i) $(ForceClose) != TRUE
  579.         set ForceAppsClosed = NO
  580.     else
  581.         set ForceAppsClosed = YES
  582.     endif
  583.     install Install-Shutdown2
  584.     endif
  585.     goto finish1
  586.     exit
  587. [LoadPatchLibrary]
  588.     LoadLibrary "x" patchdll.dll !PATCHLIBHANDLE
  589.     exit
  590. [FreePatchLibrary]
  591.     ifstr(i) $(!PATCHLIBHANDLE) != ""
  592.         FreeLibrary $(!PATCHLIBHANDLE)
  593.     endif
  594.     exit
  595. [LoadSetupLibrary]
  596.     LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE
  597.     exit
  598. [FreeSetupLibrary]
  599.     ifstr(i) $(!LIBHANDLE) != ""
  600.         FreeLibrary $(!LIBHANDLE)
  601.     endif
  602.     exit
  603. [Install-File]
  604.     set STF_VITAL = ""
  605.     AddSectionKeyFileToCopyList $(FileSection) $(FileKey) $(FileSource) $(FileDest)
  606.     exit
  607. [Install-DoCopy]
  608.     CopyFilesInCopyList
  609.     exit
  610. [Install-Shutdown]
  611.     LibraryProcedure STATUS,$(!LIBHANDLE),ShutdownSystem $(Reboot)
  612.     exit
  613. [Install-Shutdown2]
  614.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE),ShutdownSystem2 $(Reboot) $(ForceAppsClosed)
  615.     exit
  616. [RegistryConstants]
  617.     MaskAllAccess          = 33554432
  618.     NoTitle                = 0
  619.     RegLastError           = $(!REG_ERROR_SUCCESS)
  620.     CurrentControlSet      = "SYSTEM\CurrentControlSet"
  621. [DoRegistryModifications]
  622.     set Status = STATUS_FAILED
  623.     read-syms RegistryConstants
  624.     set KeyPath   = { +
  625.                      {SYSTEM,            $(NoTitle), $(MaskAllAccess)}, +
  626.                      {CurrentControlSet, $(NoTitle), $(MaskAllAccess)}, +
  627.                      {Control,           $(NoTitle), $(MaskAllAccess)}, +
  628.              {Windows,         $(NoTitle), $(MaskAllAccess)}, +
  629.                     }
  630.     set KeyValues = { +
  631.                      {CSDVersion, $(NoTitle), $(!REG_VT_DWORD), $($0) } +
  632.                     }
  633.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  634.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  635.         goto endCSDVersionCreate
  636.     endif
  637.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  638.         goto endCSDVersionCreate
  639.     else
  640.         CloseRegKey $($R1)
  641.     endif
  642.     set Status = STATUS_SUCCESSFUL
  643. endCSDVersionCreate = +
  644.     Return $(Status)
  645. [GetCSDVersion]
  646.     set Status = STATUS_SUCCESSFUL
  647.     read-syms RegistryConstants
  648.     set CSDVersion = 0
  649.     set KeyName = "SYSTEM\CurrentControlSet\Control\Windows"
  650.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  651.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  652.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  653.         goto end_GetCSDVersion
  654.     endif
  655.     GetRegValue $(KeyHandle) "CSDVersion" CSDVersionValue
  656.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  657.         CloseRegKey $(KeyHandle)
  658.         goto end_GetCSDVersion
  659.     endif
  660.     set CSDVersion =  *($(CSDVersionValue), 4)
  661.     CloseRegKey $(KeyHandle)
  662. end_GetCSDVersion = +
  663.     Return $(Status) $(CSDVersion)
  664. [GetCheckedFree]
  665.     set Status = STATUS_SUCCESSFUL
  666.     read-syms RegistryConstants
  667.     set System = Free
  668.     set KeyName = "Software\Microsoft\Windows NT\CurrentVersion"
  669.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  670.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  671.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  672.         goto end_GetCheckedFree
  673.     endif
  674.     GetRegValue $(KeyHandle) "CurrentType" CurrentTypeValue
  675.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  676.         CloseRegKey $(KeyHandle)
  677.         goto end_GetCheckedFree
  678.     endif
  679.     Split-String *($(CurrentTypeValue), 4) " " CurrentTypeList
  680.     ForListDo $(CurrentTypeList)
  681.        ifstr(i) $($) == "free"
  682.           set System = free
  683.        else-ifstr(i) $($) == "checked"
  684.           set System = checked
  685.        endif
  686.     EndForListDo
  687.     CloseRegKey $(KeyHandle)
  688. end_GetCheckedFree = +
  689.     Return $(Status) $(System)
  690. [GetIISPath]
  691.     set Status = STATUS_SUCCESSFUL
  692.     read-syms RegistryConstants
  693.  
  694.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\W3svc\Parameters" 33554432 KeyW3svc
  695.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  696.         set Status = $(!REG_ERROR_SUCCESS)
  697.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  698.         goto end_getntDest
  699.     endif
  700.     GetRegValue $(KeyW3svc) "InstallPath" DestPathValue
  701.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  702.         set Status = $(!REG_ERROR_SUCCESS)
  703.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" "IIS Path (sub) = Error2"
  704.         CloseRegKey $(KeyW3svc)
  705.         goto end_getntDest
  706.     endif
  707.     set NtDest = *($(DestPathValue), 4)
  708.     shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" "IIS Path (sub) = "$(NtDest)
  709.     CloseRegKey $(KeyHandle)
  710. end_getntDest = +
  711.     Return $(Status) $(NTDest)
  712. [QueryOkCancel]
  713.     set DlgText = $($0)
  714.     read-syms QueryOKCancelDlg$(!STF_LANGUAGE)
  715.     ui start "SetupMessage"
  716.     ifstr(i) $(DLGEVENT) == "OK"
  717.         set Status     = STATUS_SUCCESSFUL
  718.         set UserAction = $(DLGEVENT)
  719.     else-ifstr(i) $(DLGEVENT) == "CANCEL"
  720.         set Status     = STATUS_SUCCESSFUL
  721.         set UserAction = $(DLGEVENT)
  722.     else
  723.         set Status     = STATUS_FAILED
  724.         set UserAction = "CANCEL"
  725.     endif
  726.     Return $(Status) $(UserAction)
  727. [Signature]
  728.     FileType = MICROSOFT_FILE
  729. [GetSignature]
  730.     read-syms Signature
  731.     return $(FileType)
  732. [ProductType]
  733. STF_PRODUCT  = Winnt
  734. STF_PLATFORM = ppc
  735. [Source Media Descriptions]
  736.     1  = "Windows NT 4.0 Beta 2 Update Disk #1"    , TAGFILE = disk1
  737.     2  = "Windows NT 4.0 Beta 2 Update Disk #2"    , TAGFILE = disk2
  738.     3  = "Windows NT 4.0 Beta 2 Update Disk #3"    , TAGFILE = disk3
  739.     4  = "Windows NT 4.0 Beta 2 Update Disk #4"    , TAGFILE = disk4
  740.     5  = "Windows NT 4.0 Beta 2 Update Disk #5"    , TAGFILE = disk5
  741.     6  = "Windows NT 4.0 Beta 2 Update Disk #6"    , TAGFILE = disk6
  742.     7  = "Windows NT 4.0 Beta 2 Update Disk #7"    , TAGFILE = disk7
  743.     8  = "Windows NT 4.0 Beta 2 Update Disk #8"    , TAGFILE = disk8
  744.     9  = "Windows NT 4.0 Beta 2 Update Disk #9"    , TAGFILE = disk9
  745.     10 = "Windows NT 4.0 Beta 2 Update Disk #10", TAGFILE = disk10
  746. [Strings]
  747.     String1 = "This update disk cannot be used on this platform."
  748.     String2 = "Setup failed to update the system."
  749.     String3 = "Setup has successfully updated your system."
  750.     String4 = "You do not have permission to update the system.  Please contact your system administrator."
  751.     String5 = "Setup failed to setup your updated files for secure operation."
  752.     String8 = "Setup has detected that the version of the system installed is "+
  753.               "newer than the update you are applying to it.  The update can render "+
  754.               "your system unstartable.  Press OK if you still wish to continue "+
  755.               "or press Cancel to exit Setup."
  756.     String9 = "Setup is going to update your Windows NT system with the English "+
  757.               "version of the update program.  If you wish to cancel the update "+
  758.               "process, please press Cancel or press OK to continue."
  759.     String11 = "Setup couldn't find the setup.log file in your repair directory. "+
  760.                "Setup cannot proceed to update your system.  Please copy the setup.log "+
  761.                "file from your Emergency Repair Disk to your repair directory "+
  762.                "and restart the update."
  763.     String12 = "Setup has not updated your system.  If you wish to update your "+
  764.                "system please run the update utility again."
  765.     String13a = "Not enough hard disk space to run Setup.  Setup needs at least "
  766.     String13b = "MB of free hard disk space on "
  767.     String13c = " before it can be run.  Delete some"+
  768.                 " files and run the Update program again."
  769.     String14  = "Setup cannot update your Windows NT files because it could not "+
  770.                 "determine your product type.  Your registry may be corrupt."
  771.     String15  = "Setup cannot update your checked system.  The update can only "+
  772.                 "be applied to the retail system."
  773.     String16  = "Setup cannot update your Windows NT files because your system is "+
  774.         "NT 3.1, NT 3.5, or NT 3.51. Please upgrade your system to Windows NT 4.0 Beta 2, "+
  775.                 "and then update your system."
  776.     String17  = "Setup cannot update your Windows NT files because your system is "+
  777.         "running a build of NT 4.0 previous to Beta 2. Please upgrade your system to "+
  778.         "Windows NT 4.0 Beta 2, and then update your system."
  779.     String18  = "Setup cannot update your Windows NT files because your system is "+
  780.         "a version later than Windows NT 4.0 Beta 2.  The update can only be applied "+
  781.         "to Windows NT 4.0 Beta 2."
  782.     String19  = "Setup cannot update your Windows NT files because you have installed "+
  783.                 "the IBM Power Management version of NT 3.51.  Please see IBM for "+
  784.                 "a Service Pack that can be installed on your system."
  785.     String20  = "Setup cannot update your Windows NT files because the language "+
  786.                 "installed on your system is different from the Service Pack language."
  787.     Billboard1 = "Please wait..."
  788.     Billboard2 = "Please wait while the files to be updated are determined..."
  789.     Billboard3 = "Please wait while the Emergency Repair Disk is updated..."
  790. [ProgressCopyENG]
  791.     ProCaption   = "Windows NT Setup"
  792.     ProCancel    = "Cancel"
  793.     ProCancelMsg = "The Windows NT 4.0 Beta 2 files are not completely updated.  Are you sure you want "+
  794.                    "to cancel copying files?"
  795.     ProCancelCap = "Setup Message"
  796.     ProText1     = "Copying:"
  797.     ProText2     = "To:"
  798. [SetupDoneDlgENG]
  799.     Caption     = "Windows NT Setup"
  800.     DlgText    = "Windows NT 4.0 Beta 2 has been updated. If you change or add "+
  801.                   "any components to your system, you will need to "+
  802.                   "reapply the update."$(!LF)$(!LF)+
  803.                   "Remove disks from the floppy disk drives and "+
  804.                   "choose Restart Computer to run the updated system."
  805.     Reboot      = "&Restart Computer"
  806.     Windows     = "E&xit to Windows NT"
  807.     DlgType     = "Info"
  808.     DlgTemplate = "REBOOT"
  809. [QueryOKCancelDlgENG]
  810.     STF_MB_TITLE = "Setup Message"
  811.     DlgType      = "MessageBox"
  812.     STF_MB_TEXT  = $(DlgText)
  813.     STF_MB_TYPE  = 2
  814.     STF_MB_ICON  = 4
  815.     STF_MB_DEF   = 1
  816.